package com.mall.user.domain.port.in;

import com.mall.user.domain.model.User;

import java.util.List;

/**
 * 获取用户列表用例接口
 * 定义获取用户相关的输入端口
 */
public interface GetUsersUseCase {
    
    /**
     * 获取所有用户列表
     * @return 用户列表
     */
    List<User> getAllUsers();
    
    /**
     * 根据用户名模糊查询用户列表
     * @param namePattern 用户名模式
     * @return 匹配的用户列表
     */
    List<User> getUsersByNamePattern(String namePattern);
    
    /**
     * 分页获取用户列表
     * @param page 页码（从0开始）
     * @param size 每页大小
     * @return 用户列表
     */
    List<User> getUsersWithPagination(int page, int size);
    
    /**
     * 获取用户总数
     * @return 用户总数
     */
    long getUserCount();
}